import Vue, { CreateElement, VNode } from 'vue';

export interface NoticeConfig {
  /**
   * 通知提醒的标题
   */
  title?: string;
  /**
   * 通知提醒的内容，为空或不填时，自动应用仅标题模式下的样式
   */
  desc?: string;

  /**
   * 自动关闭的延时，单位秒，不关闭可以写 0 默认4.5
   */
  duration?: number;
  /**
   * 当前通知的唯一标识
   */
  name?: string;
  /**
   * 关闭时的回调
   */
  onClose?: Function;

  /**
  * 自定义描述内容，使用 Vue 的 Render 函数
  */
  render?: (h: CreateElement) => VNode;
}

export interface NoticeGlobalConfig {
  /**
   * 通知组件距离顶端的距离，单位像素 默认24
   */
  top?: number;
  /**
   * 默认自动关闭的延时，单位秒 默认4.5
   */
  duration?: number;
}


export interface IconType {
  [key: string]: string
}

export interface Noticeinfo {
  /**
    * 通知提醒的标题
    */
  title?: string;

  content?: string;

  type?: string;

  className?: string;
  transitionName?: string;
  closable?: boolean;
  msgType?: string;

  background?: boolean;

  withIcon?: boolean;
  hasTitle?: boolean;

  /**
   * 通知提醒的内容，为空或不填时，自动应用仅标题模式下的样式
   */
  desc?: string;

  /**
   * 自动关闭的延时，单位秒，不关闭可以写 0 默认4.5
   */
  duration?: number;
  /**
   * 当前通知的唯一标识
   */
  name?: string;
  /**
   * 关闭时的回调
   */
  onClose?: Function;

  /**
  * 自定义描述内容，使用 Vue 的 Render 函数
  */
  render?: (h: CreateElement) => VNode;
}

